Modern packet-based communication networks such as the Internet have developed to allow highly efficient transmission of large quantities of traffic between users of different user terminals. One popular mode of communication that can be implemented over a packet-based network is the exchange of text-based messages between the user terminals of two or more users who have selected to become mutual contacts of one another. This is sometimes referred to as “Instant Messaging” (IM) or “IM chat”.
To participate in the instant messaging each user executes an instant messaging client application on his or her respective terminal. When executed, the IM client allows the user to make or accept contact requests to or from other users of the instant messaging system and thereby become pre-agreed contacts, and to then establish a communication connection with one or more of those contacts so as to send and receive text-based messages over the network. Related messages, e.g. between the same group of participants, are concatenated by the IM client into a sequential thread which can be displayed as such in an appropriate window, pane or panel of the client.
IM chat messages are typically exchanged in real-time, although some systems may also provide a server which can store messages for later delivery if one of the contacts involved in a particular thread is offline at the time the message is sent.
An IM chat client may also include various tools to enhance its functionality, such as the ability to insert emoticons into chat messages, the provision of presence information indicating the online availability of contacts (which may be defined at least in part by the users themselves), a search facility, and/or the ability to cut and paste quotes from an earlier message of a thread into a new message of that thread or another thread. Furthermore, some IM chat clients may support additional types of communication such as file transfer and/or packet-based voice or video calling, e.g. voice-over-Internet Protocol (VoIP).